package com.jy.wms.dao;


import com.jy.wms.common.base.BaseDao;
import com.jy.wms.pojo.SysMenu;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @ClassName: SysMenuMapper.java
 * @Description: TODO(这里用一句话描述这个类的作用)
 * @Author lh
 * @Date Tue Aug 29 15:29:31 GMT+08:00 2017
 */
public interface SysMenuMapper extends BaseDao<SysMenu> {

    /**
     * 插入一条记录
     *
     * @param entity   实体对象
     * @return int
     */
    public Integer baseInsert(@Param("SysMenu") SysMenu entity);

    /**
     * 插入一条记录（匹配有值的字段）
     *
     * @param entity   实体对象
     * @param database 数据库名称
     * @return int
     */
    public Integer baseInsertSelective(@Param("SysMenu") SysMenu entity, @Param("database") String database);

    /**
     * 删除（根据主键ID删除）
     *
     * @param id       主键
     * @return int
     */
    public Integer baseDeleteByPrimaryKey(@Param("id") String id);

    /**
     * 删除（根据ID 批量删除）
     *
     * @param idList   主键ID列表
     * @return int
     */
    public Integer baseDeleteBathPrimaryKeys(@Param("list") List<String> idList);


    /**
     * 分页查询
     *
     * @param entity   实体
     * @param database 数据库名称
     * @return List<SysMenu>
     */
    public List<SysMenu> baseSelectPage(@Param("SysMenu") SysMenu entity, @Param("database") String database);

    /**
     * 查询（根据主键ID查询）
     *
     * @param id       主键ID
     * @return User
     */
    public SysMenu baseSelectByPrimaryKey(@Param("id") String id);

    /**
     * 查询（根据ID 批量查询）
     *
     * @param idList   主键ID列表
     * @param database 数据库名称
     * @return list
     */
    public Integer baseSelectBathPrimaryKeys(@Param("list") List<SysMenu> idList, @Param("database") String database);

    /**
     * 修改 （匹配有值的字段）
     *
     * @param entity   主键ID列表
     * @return int
     */
    public Integer baseUpdateByPrimaryKeySelective(@Param("SysMenu") SysMenu entity);

    /**
     * 修改（根据主键ID修改）
     *
     * @param entity   主键ID列表
     * @param database 数据库名称
     * @return int
     */
    public Integer baseUpdateByPrimaryKey(@Param("SysMenu") SysMenu entity, @Param("database") String database);

  /*  List<SysMenu> getRoleMenus(@Param("array") Integer[] rid, String customer);
*/

    /**
     * @Description:获取菜单
     * @Date: 2017/8/25 0025
     * @user:lh
     * @params: * @param null
     * @return
     */
       /*List<SysMenu> getFuMenu();
       List<SysMenu> getZiMenu(EntityWrapper<SysMenu> fid);*/
      /* List<SysMenu> getMenus(@Param("database")String database);*/

    /**
     * 查询数据库是否有相同编号的菜单
     *
     * @param code 菜单编码
     * @return
     */
    Integer getCountByCode(@Param("code") String code, @Param("mc") String mc,@Param("id") String id);

    /**
     * 查询（根据父节点查询）
     *
     * @param fjd      父节点
     * @return SysMenu
     */
    public List<SysMenu> selectByFjd(@Param("fjd") String fjd);

    /**
     * 菜单调整顺序时调整原先位置（被占用）的菜单的顺序
     * @param fjd
     * @param wzNew
     * @param wzOld
     * @return
     */
    public int updateOrderOther(@Param("fjd") String fjd, @Param("wzNew") String wzNew, @Param("wzOld") String  wzOld);

    /**
     * 修改当前菜单的位置
     * @param id
     * @param wzNew
     * @return
     */
    public int updateOrderSelf(@Param("id") String id, @Param("wzNew") Integer wzNew);
    /**
     * 删除角色菜单（根据菜单ID删除）
     *
     * @param id       主键
     * @return int
     */
    public Integer deleteRoleMenu(@Param("cdid") String id);

}
